OCPBUGS-82511: re-enable helm-release.feature#16274
OCPBUGS-82511: re-enable helm-release.feature#16274rhamilto wants to merge 2 commits intoopenshift:mainfrom
Conversation
|
@rhamilto: This pull request references Jira Issue OCPBUGS-82511, which is invalid:
Comment The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this: Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: rhamilto The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
📝 WalkthroughWalkthroughThis PR updates integration test support code and feature files across multiple packages. Changes include removing feature disablement comment and Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes 🚥 Pre-merge checks | ✅ 10✅ Passed checks (10 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
/test e2e-gcp-console |
1 similar comment
|
/test e2e-gcp-console |
|
/retest |
e73ffe2 to
c2b3050
Compare
|
/retest |
2 similar comments
|
/retest |
|
/retest |
|
/cherry-pick release-4.22 |
|
@rhamilto: once the present PR merges, I will cherry-pick it on top of DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
/jira refresh |
|
@rhamilto: once the present PR merges, I will cherry-pick it on top of DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@rhamilto: This pull request references Jira Issue OCPBUGS-82511, which is valid. The bug has been moved to the POST state. 3 validation(s) were run on this bug
DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
@rhamilto: This pull request references Jira Issue OCPBUGS-82511, which is valid. 3 validation(s) were run on this bug
DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
frontend/packages/dev-console/integration-tests/support/pages/app.ts (1)
313-360: Project-create flow is duplicated in two branches.Consider extracting a helper (e.g.,
createProjectIfAllowed(projectName)) to keep permission check, creation, andNAMESPACESupdate in one place.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@frontend/packages/dev-console/integration-tests/support/pages/app.ts` around lines 313 - 360, The project-create logic is duplicated; extract it into a helper named createProjectIfAllowed(projectName) that encapsulates the permission check (presence of '[data-test-dropdown-menu="#CREATE_RESOURCE_ACTION#"]'), clicking cy.byTestDropDownMenu('#CREATE_RESOURCE_ACTION#'), calling projectNameSpace.enterProjectName(projectName), confirming via cy.byTestID('confirm-action'), updating the shared Cypress.expose('NAMESPACES') array to include projectName if missing, and invoking app.waitForLoad(); replace both duplicated blocks with a single call to createProjectIfAllowed(projectName) and leave the existing error throw in caller paths only when the helper determines creation is not allowed.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@frontend/packages/dev-console/integration-tests/support/pages/app.ts`:
- Around line 334-360: The current code calls .contains(projectName).click()
which throws when the project isn't present, making the create-permission
fallback unreachable; change the selection logic in the namespace dropdown (the
cy.get('[data-test="namespace-dropdown-menu"]').find('[data-test="dropdown-menu-item-link"]')
block) to first query the items and check for an element whose text includes
projectName (e.g., using a .then($items => { if ($items.filter(...) or
Array.from($items).some(...) }) ) and only call .click() when found; otherwise
proceed into the existing fallback that checks for the create action, calls
cy.byTestDropDownMenu('#CREATE_RESOURCE_ACTION#').click(), uses
projectNameSpace.enterProjectName(projectName), clicks
cy.byTestID('confirm-action'), updates Cypress.expose('NAMESPACES'), and calls
app.waitForLoad(); ensure you reference and update the same variables/commands
(projectNameSpaceDropdown alias, projectNameSpace.enterProjectName,
cy.byTestDropDownMenu, cy.byTestID, Cypress.expose, app.waitForLoad) so the
fallback can execute when the project item is absent.
---
Nitpick comments:
In `@frontend/packages/dev-console/integration-tests/support/pages/app.ts`:
- Around line 313-360: The project-create logic is duplicated; extract it into a
helper named createProjectIfAllowed(projectName) that encapsulates the
permission check (presence of
'[data-test-dropdown-menu="#CREATE_RESOURCE_ACTION#"]'), clicking
cy.byTestDropDownMenu('#CREATE_RESOURCE_ACTION#'), calling
projectNameSpace.enterProjectName(projectName), confirming via
cy.byTestID('confirm-action'), updating the shared Cypress.expose('NAMESPACES')
array to include projectName if missing, and invoking app.waitForLoad(); replace
both duplicated blocks with a single call to createProjectIfAllowed(projectName)
and leave the existing error throw in caller paths only when the helper
determines creation is not allowed.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: c6710cba-648b-4604-b088-2a3580c5b0bc
📒 Files selected for processing (4)
frontend/packages/dev-console/integration-tests/support/pages/add-flow/catalog-page.tsfrontend/packages/dev-console/integration-tests/support/pages/app.tsfrontend/packages/helm-plugin/integration-tests/features/helm-release.featurefrontend/packages/integration-tests/views/details-page.ts
✅ Files skipped from review due to trivial changes (2)
- frontend/packages/integration-tests/views/details-page.ts
- frontend/packages/helm-plugin/integration-tests/features/helm-release.feature
|
/retest |
|
/retest |
3 similar comments
|
/retest |
|
/retest |
|
/retest |
|
/retest |
|
/test e2e-gcp-console |
|
/retest |
|
@rhamilto: This pull request references Jira Issue OCPBUGS-82511, which is valid. 3 validation(s) were run on this bug
The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
The Helm list page is at /helm/ns/{namespace} for all perspectives.
There is no /helm-releases/ns/{namespace} route - only detail and form
routes use the /helm-releases prefix.
Updated getOriginRedirectURL to always redirect to /helm/ns/{namespace}
for list page, and fixed HelmReleaseDetailsPage namespace change handler
to use the correct route.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Changes to fix flaky Helm release Cypress tests and re-enable the test suite: Navigation and test structure improvements: - Add navigation constants (navPaths) to DRY up cy.clickNavLink calls - Replace navigateTo() with cy.clickNavLink() for Helm and Topology navigation - Remove duplicate cy.clickNavLink() command definition in dev-console - Move cy.clickNavLink() to shared integration-tests package - Add app.waitForLoad() calls to ensure pages fully load before interactions - Update helm-release.feature precondition to use admin perspective setup Timing and race condition fixes: - Wait for chart version dropdowns to be enabled before clicking - Wait for button loading states to complete before proceeding - Wait for catalog cards to be filtered and displayed after type selection - Increase numTestsKeptInMemory from 5 to 50 to prevent memory cleanup mid-test - Add verifyPageTitle() check after selecting catalog type - Change detailsPage titleShouldContain to use 'exist' instead of 'be.visible' Topology sidebar improvements: - Fix topology sidebar flake by searching for helm group before clicking - Update verifyActions to check exact action list length and order - Fix malformed CSS selector in topology-po.ts (missing closing quote) Test cleanup: - Remove duplicate step definitions for "user will be redirected to Topology page" - Remove duplicate step definition for "user is on the topology sidebar" - Simplify hooks.ts to use cy.login() without explicit credentials - Remove beforeEach hook that was causing state pollution - Reorder test scenarios to match dependency flow Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
e5f75c6 to
0843748
Compare
|
@rhamilto: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Includes changes from #16336
Summary
Re-enables the
helm-release.featuretest by fixing flaky test failures related to timing issues, navigation, topology sidebar interactions, and test isolation.Changes
Navigation and Test Structure Improvements
navigation.tswith centralizednavPathsconstantsExample:
Timing and Race Condition Fixes
Topology Sidebar Improvements
Root cause of sidebar flake: Helm group SVG elements were still being rendered/positioned when clicked, causing the sidebar to open and immediately close. Searching first ensures the element is fully ready.
Test Cleanup and Isolation
CI Testing Changes (DO NOT MERGE)
Testing
helm-release.featurewhich was previously disabled due to OCPBUGS-82511Files Changed (18)
navigation.ts(new constants file)common.ts(navigation + wait improvements)helm-navigation.ts(navPaths replacements)helm-release.ts(simplified + navPaths)install-url-chart.ts(navPaths + cleanup)helm-installation-view.ts(wait for dropdown)helm-release.feature(re-enabled + reordered)hooks.ts(simplified login + removed beforeEach)catalog-page.ts(wait for loading states)upgrade-helm-release-page.ts(wait for dropdown + button)details-page.ts(visibility fix)topology-po.ts(fixed CSS selector)topology-page.ts(search before click)topology-side-pane-page.ts(improved action verification)app.ts(removed duplicate command)index.ts(removed duplicate command)cypress-common-config.js(increased memory retention)test-cypress.sh(DO NOT MERGE - test ordering for CI)🤖 Generated with Claude Code